<?php
class archiveAction extends CommonAction{
    function index(){
        //aid参数初始化
        $aid=I("aid",0,"intval");
        if(!$aid){
            if($said=I("said")){
                $aid=alphaId($said,TRUE);
            }else{
                send_http_status("404");
                exit;
            }
        }
        //分类参数初始化
        $typeid=I("typeid",0,"intval");
        //有分类相关参数，则先取分类信息
        if(!$typeid){
            //分类id不存在，但是存在分类别名，进一步处理
            $typealias=I("typealias","");
            if(!empty($typealias)){
                $arctype=D('CArctype')->GetTypeByAlias($typealias);
                if(!empty($arctype)){
                    $typeid=$arctype['id'];
                }else{
                    send_http_status("404");//分类信息为空的话，则直接404错误
                    exit;
                }
            }
        }else{
            $arctype=D('CArctype')->GetTypeById($typeid);
            if(empty($arctype)){
                send_http_status("404");//分类信息为空，返回404错误
                exit;
            }
        }
        //获取文档详细数据
        $data=D('CArchive')->GetOneArchive($aid,$typeid);
        //文档信息不存在或获取失败，则返回404错误
        if(empty($data)){
            send_http_status("404");
            exit;
        }
        //如果分类信息尚未获取，则根据文档数据中的typeid获取分类信息
        if(empty($arctype)){
            $arctype=D('CArctype')->GetTypeById($data['typeid']);
        }else{
            //文档数据中的typeid和上面获取的typeid不一致，则返回404错误。
            if($arctype['id'] != $data['typeid']){
                send_http_status("404");
                exit;
            }
        }
        //当前位置，面包屑导航
        $data['position']=D('CArctype')->GetPosition($typeid);//位置连接，面包屑导航
        $this->assign("archive",$data);
        $this->assign("arctype",$arctype);
        $templet=empty($arctype['arctpl'])?"archive_article":$arctype['arctpl'];//调用指定的模板
        $this->_display($templet);//输出模板
    }
}
